/*
 * Project Name:ssh-webapp
 * File Name:UserInfo.java
 * Package Name:com.jun.issh.entity
 *
 * @(#)2013年8月16日上午9:57:06 V1.0
 *
 * Copyright (c) 2013 WESOFT, Inc. All Rights Reserved.
 * 
 */
package com.jun.issh.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

/**
 * @ClassName: UserInfo
 * @Description: 用户信息
 * 
 * 使用JPA annotation定义ORM关系.
 * 使用Hibernate annotation定义JPA 1.0未覆盖的部分.
 * 
 * @author Venlentine
 * @Date: 2013年8月16日 上午9:57:06
 * @version 
 * 
 * <pre>
 * 修改记录:
 * 修改后版本			修改人			修改日期		修改内容
 * 2013年8月16日.1		Venlentine		2013年8月16日		Create
 * </pre>
 *
 */
@Entity
//表名与类名不相同时重新定义表名.
@Table(name = "user_info")
//默认的缓存策略.
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class User extends IdEntity {

	//字段非空且唯一, 用于提醒Entity使用者及生成DDL.
	@Column(length = 20, nullable = false, unique = true)
	private String loginName;
	//密码
	@Column(length = 20, nullable = false)
	private String password;
	//姓名
	@Column(length = 20, nullable = false)
	private String name;

	@Column(length = 100, nullable = false)
	private String email;

	/**
	 * loginName.
	 *
	 * @return  the loginName
	 */
	public String getLoginName() {
		return loginName;
	}

	/**
	 * loginName.
	 *
	 * @param   loginName    the loginName to set
	 */
	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	/**
	 * password.
	 *
	 * @return  the password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * password.
	 *
	 * @param   password    the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * name.
	 *
	 * @return  the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * name.
	 *
	 * @param   name    the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * email.
	 *
	 * @return  the email
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * email.
	 *
	 * @param   email    the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}
}
